Conversation
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
There was a problem hiding this comment.
Pull request overview
Adds SDK support for the new <Refer> BXML verb and introduces a corresponding ReferCompleteCallback model in the generated OpenAPI surface, along with documentation and unit tests.
Changes:
- Added
Referverb model, registered it inBxml, and added JAXB serialization unit tests. - Added
ReferCompleteCallbackmodel + docs, and registered its Gson type adapter. - Updated shared callback
eventTypedocumentation across multiple generated callback models/docs/specs to includereferComplete.
Reviewed changes
Copilot reviewed 53 out of 53 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/test/java/com/bandwidth/sdk/unit/models/bxml/ReferVerbTest.java | Adds JAXB serialization tests for <Refer> verb output. |
| src/main/java/com/bandwidth/sdk/model/TransferDisconnectCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/TransferCompleteCallback.java | Updates generated model docs (currently describing Refer Complete). |
| src/main/java/com/bandwidth/sdk/model/TransferAnswerCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/TranscriptionAvailableCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/ReferCompleteCallback.java | Adds new generated callback model for Refer Complete events. |
| src/main/java/com/bandwidth/sdk/model/RedirectCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/RecordingCompleteCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/RecordingAvailableCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/MachineDetectionCompleteCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/InitiateCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/GatherCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/DtmfCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/DisconnectCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/ConferenceRedirectCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/ConferenceRecordingAvailableCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/ConferenceMemberJoinCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/ConferenceMemberExitCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/ConferenceCreatedCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/ConferenceCompletedCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/bxml/Refer.java | Adds the <Refer> BXML verb model and its attributes. |
| src/main/java/com/bandwidth/sdk/model/bxml/Bxml.java | Registers <Refer> as a supported verb within <Bxml>. |
| src/main/java/com/bandwidth/sdk/model/BridgeTargetCompleteCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/BridgeCompleteCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/model/AnswerCallback.java | Updates eventType doc list to include referComplete. |
| src/main/java/com/bandwidth/sdk/JSON.java | Registers Gson adapter factory for ReferCompleteCallback. |
| README.md | Adds model doc link for ReferCompleteCallback. |
| docs/TransferDisconnectCallback.md | Updates eventType doc list to include referComplete. |
| docs/TransferCompleteCallback.md | Updates generated markdown model doc (currently describing Refer Complete). |
| docs/TransferAnswerCallback.md | Updates eventType doc list to include referComplete. |
| docs/TranscriptionAvailableCallback.md | Updates eventType doc list to include referComplete. |
| docs/ReferCompleteCallback.md | Adds markdown documentation for ReferCompleteCallback. |
| docs/Refer.md | Adds documentation page for the <Refer> BXML verb. |
| docs/RedirectCallback.md | Updates eventType doc list to include referComplete. |
| docs/RecordingCompleteCallback.md | Updates eventType doc list to include referComplete. |
| docs/RecordingAvailableCallback.md | Updates eventType doc list to include referComplete. |
| docs/MachineDetectionCompleteCallback.md | Updates eventType doc list to include referComplete. |
| docs/InitiateCallback.md | Updates eventType doc list to include referComplete. |
| docs/GatherCallback.md | Updates eventType doc list to include referComplete. |
| docs/DtmfCallback.md | Updates eventType doc list to include referComplete. |
| docs/DisconnectCallback.md | Updates eventType doc list to include referComplete. |
| docs/ConferenceRedirectCallback.md | Updates eventType doc list to include referComplete. |
| docs/ConferenceRecordingAvailableCallback.md | Updates eventType doc list to include referComplete. |
| docs/ConferenceMemberJoinCallback.md | Updates eventType doc list to include referComplete. |
| docs/ConferenceMemberExitCallback.md | Updates eventType doc list to include referComplete. |
| docs/ConferenceCreatedCallback.md | Updates eventType doc list to include referComplete. |
| docs/ConferenceCompletedCallback.md | Updates eventType doc list to include referComplete. |
| docs/BridgeTargetCompleteCallback.md | Updates eventType doc list to include referComplete. |
| docs/BridgeCompleteCallback.md | Updates eventType doc list to include referComplete. |
| docs/AnswerCallback.md | Updates eventType doc list to include referComplete. |
| bandwidth.yml | Adds referCompleteCallback schema and updates eventType list; updates transferCompleteCallback description text. |
| api/openapi.yaml | Adds referCompleteCallback schema and updates eventType list; updates transferCompleteCallback description text. |
| .openapi-generator/FILES | Includes newly generated model/doc files in generator manifest. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
stampercasey
left a comment
There was a problem hiding this comment.
Review from Claude Code — see inline comments for individual findings. Four blockers, all in the verb attributes and callback model.
ReferCompleteCallback (and its ReferCallStatusEnum dependency) will land later via a separate api-specs-driven PR once VAPI-3440 merges, so it doesn't belong in this PR yet. Refer's nested Refer.ReferSipUri is also removed in favor of the existing Transfer-flavored SipUri class, matching the merged csharp-sdk reference implementation (Bandwidth/csharp-sdk#201) which kept Refer plain: no validation, no custom builder, just a shared SipUri property.
bandwidth.yml/api/openapi.yaml still carried the full referCompleteCallback schema and a referComplete addition to the shared eventType enum description after ReferCompleteCallback.java was deleted; nothing generates from it anymore. Also removed the corresponding .openapi-generator/FILES entries and a stray README.md indentation glitch.
The eventType enum description was regenerated with referComplete added to every callback model's docs/*.md and javadoc comment, plus the standalone eventType schema's line wrap in api/openapi.yaml. Since ReferCompleteCallback is out of scope for this PR, these are unrelated diff noise - reverted to match main exactly.
api/openapi.yaml still carried an unrelated pre-existing rewrap of transferCompleteCallback's description with no connection to this PR - reverted the whole file to match main. Also dropped docs/Refer.md: Refer is hand-written (not generated from api/openapi.yaml), so it's the only BXML verb with a hand-maintained doc page, matching the csharp-sdk reviewer's call to delete the equivalent doc there (customers use the BXML dev docs guide instead).
| .tag("test-tag") | ||
| .build(); | ||
|
|
||
| Refer referMinimal = Refer.builder() |
| } | ||
|
|
||
| @Test | ||
| public void referVerbMinimal() throws JAXBException { |
ckoegel flagged the referMinimal field/test as unnecessary; keeping only referVerbWithAllAttributes.
|
/check |
|
@ckoegel the |
|
/check |
|
@stampercasey the |
Adds the
<Refer>BXML verb.src/main/java/com/bandwidth/sdk/model/bxml/Refer.java: newReferverb, registered inBxml.java.SipUriclass (implementsOutboundDestination) for the SIP URI child instead of a separate nestedRefer.ReferSipUri, built via the same stock Lombok@BuilderasTransfer- no cross-field validation restricting whichSipUriattributes are legal per verb.ReferVerbTest.javacovering minimal and full-attribute XML serialization.Tests:
mvn test -Dtest="com.bandwidth.sdk.unit.models.*Test"- 1190/1190 pass.VAPI-3438